这是第三次建博客了,希望这是最后一次。这次不同的是,博客的代码是自己写的,当做练手,编程游乐场。第一篇博文就来讲讲建立这个博客的过程吧。
建立博客
最初是在 youtube 上看到了一个博主发的:How To Build A Markdown Blog Using Node.js, Express, And MongoDB,通过 Node.js,Express 和 MongoDB 来建立一个博客。于是就跟着做下来,顺便再次重新开启自己博客的想法。这已经是第三次开博客了,第一次是用 WordPress 搭的,第二次是 Hexo,这是第三次,自己撸一个。
跟着 YouTube 上这个视频走一圈下来,基本上就可以完成一个非常简单的博客应用,遇到不懂的地方谷歌搜一遍,学习起来还是非常快的。
Express 基础用法就是 app.use()
进行中间件配置,app.get()
、app.post()
等4个方法进行 Http 请求处理。一个请求会根据中间件配置的顺序,全部都过一遍,最后到达相应的 HTTP 请求处理的方法,使用起来还是非常简单的。前端页面通过 ejs 模板进行渲染,MongoDb 数据库通过 mongoose 模块来使用,也非常便捷。
改进
做完后,得到的博客网站是直接在网页上编辑 Markdown,直接写入数据库,这个并不是我想要的。我个人还是倾向于 Hexo 的方式,在本地编写 Markdown,这样以前用 Hexo 搭建的博客上的博文也可以继续用起来。于是我就对代码进行了改造,在gitee上面开一个仓库,专门用来存 Markdown 的博文。通过 gitee 的webhook功能,在仓库的博文更新后,自动调用博客的 API,博客再拉取仓库上的 Markdown 文件更新博客上的数据库。
之后我又增加了一个简易的图床,博文用到的图片都可以存在同一个服务器上。在电脑上通过 uPic 可以自定义图片上传接口,方便的上传图片。
运维
博客网站搭建在一个阿里云的 1G CPU,512M 内存的 ECS 服务器上,流量我选择按用量付费,由于流量很少,一直没有超出扣钱的阈值,用了好几天也没扣过钱。
自己建服务器搭博客,运维也是挺麻烦的一件事,为了让服务器更好的运行 Node,学习使用了 PM2。为了开机自启动,学习了 Systemd。
另外,使用 ServerCat 这个 App 可以方便快捷的查看服务器运行状态。
后续
博客还有很多不完善的地方,后续也会慢慢完善,比如手机屏幕适配、RSS 订阅功能、留言功能、夜间模式等。